Updates to Section 5
authorGMT 2004 Tony Gale <gale@gtk.org>
Wed, 14 Jan 2004 13:08:55 +0000 (13:08 +0000)
committerTony Gale <gale@src.gnome.org>
Wed, 14 Jan 2004 13:08:55 +0000 (13:08 +0000)
Wed Jan 14 13:07:30 GMT 2004  Tony Gale <gale@gtk.org>

        * docs/faq/gtk-faq.sgml: Updates to Section 5

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
docs/faq/gtk-faq.sgml

index 93d4e37abf0233e4113d57ebafbbea955b1a0cd1..c7cce348f5ce60d11f314be007b6bf0fbab3808f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jan 14 13:07:30 GMT 2004  Tony Gale <gale@gtk.org>
+
+       * docs/faq/gtk-faq.sgml: Updates to Section 5
+
 Wed Jan 14 02:34:57 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkradioaction.c: Add a writable group property to align
index 93d4e37abf0233e4113d57ebafbbea955b1a0cd1..c7cce348f5ce60d11f314be007b6bf0fbab3808f 100644 (file)
@@ -1,3 +1,7 @@
+Wed Jan 14 13:07:30 GMT 2004  Tony Gale <gale@gtk.org>
+
+       * docs/faq/gtk-faq.sgml: Updates to Section 5
+
 Wed Jan 14 02:34:57 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkradioaction.c: Add a writable group property to align
index 93d4e37abf0233e4113d57ebafbbea955b1a0cd1..c7cce348f5ce60d11f314be007b6bf0fbab3808f 100644 (file)
@@ -1,3 +1,7 @@
+Wed Jan 14 13:07:30 GMT 2004  Tony Gale <gale@gtk.org>
+
+       * docs/faq/gtk-faq.sgml: Updates to Section 5
+
 Wed Jan 14 02:34:57 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkradioaction.c: Add a writable group property to align
index 93d4e37abf0233e4113d57ebafbbea955b1a0cd1..c7cce348f5ce60d11f314be007b6bf0fbab3808f 100644 (file)
@@ -1,3 +1,7 @@
+Wed Jan 14 13:07:30 GMT 2004  Tony Gale <gale@gtk.org>
+
+       * docs/faq/gtk-faq.sgml: Updates to Section 5
+
 Wed Jan 14 02:34:57 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkradioaction.c: Add a writable group property to align
index 93d4e37abf0233e4113d57ebafbbea955b1a0cd1..c7cce348f5ce60d11f314be007b6bf0fbab3808f 100644 (file)
@@ -1,3 +1,7 @@
+Wed Jan 14 13:07:30 GMT 2004  Tony Gale <gale@gtk.org>
+
+       * docs/faq/gtk-faq.sgml: Updates to Section 5
+
 Wed Jan 14 02:34:57 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkradioaction.c: Add a writable group property to align
index 5c5a6ad1f86b7771b1003e711e867a9e1e3df427..e0389bbf67bbecf2c1e72c430120fd27653358df 100644 (file)
@@ -2,7 +2,7 @@
 <book>
 
 <bookinfo>
-  <date>January 13th 2004</date>
+  <date>January 14th 2004</date>
   <title>GTK+ FAQ</title>
   <authorgroup>
     <author>
@@ -1469,7 +1469,7 @@ in a priority of G_PRIORITY_HIGH.</para>
 
 <sect1>
 <title>Why does this strange 'x io error' occur when I
-<literal>fork()</literal> in my GTK+ app?</title>
+<literal>fork()</literal> in my GTK+ app? <emphasis>[GTK 2.x]</emphasis></title>
 
 <para>This is not really a GTK+ problem, and the problem is
 not related to <literal>fork()</literal> either. If the 'x io
@@ -1490,13 +1490,15 @@ illustrate handling fork() and exit().</para>
 <programlisting role="C">
 /*-------------------------------------------------------------------------
  * Filename:      gtk-fork.c
- * Version:       0.99.1
+ * Version:       0.99.2
  * Copyright:     Copyright (C) 1999, Erik Mouw
  * Author:        Erik Mouw &lt;J.A.K.Mouw@its.tudelft.nl&gt;
  * Description:   GTK+ fork example
  * Created at:    Thu Sep 23 21:37:55 1999
  * Modified by:   Erik Mouw &lt;J.A.K.Mouw@its.tudelft.nl&gt;
  * Modified at:   Thu Sep 23 22:39:39 1999
+ * Modified by:   Tony Gale &lt;gale@gtk.org&gt;
+ * Modified at:   Wed Jan 14 12:38:00 2004
  *-----------------------------------------------------------------------*/
 /*
  * Compile with:
@@ -1525,7 +1527,7 @@ void sigchld_handler(int num)
   sigprocmask(SIG_BLOCK, &amp;set, &amp;oldset);
 
   /* wait for child */
-  while((pid = waitpid((pid_t)-1, &amp;status, WNOHANG)) > 0)
+  while((pid = waitpid((pid_t)-1, &amp;status, WNOHANG)) &gt; 0)
     {
       if(WIFEXITED(status))
        {
@@ -1622,13 +1624,13 @@ int main(int argc, char *argv[])
    */
   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
-  gtk_signal_connect(GTK_OBJECT (window), "delete_event",
-                    GTK_SIGNAL_FUNC(delete_event), NULL);
+  g_signal_connect(G_OBJECT (window), "delete_event",
+                    G_CALLBACK(delete_event), NULL);
           
-  gtk_signal_connect(GTK_OBJECT (window), "destroy",
-                    GTK_SIGNAL_FUNC(destroy), NULL);
+  g_signal_connect(G_OBJECT (window), "destroy",
+                    G_CALLBACK(destroy), NULL);
 
-#if (GTK_MAJOR_VERSION == 1) && (GTK_MINOR_VERSION == 0)
+#if (GTK_MAJOR_VERSION == 1) &amp;&amp; (GTK_MINOR_VERSION == 0)
   gtk_container_border_width(GTK_CONTAINER (window), 10);
 #else  
   gtk_container_set_border_width(GTK_CONTAINER (window), 10);
@@ -1637,8 +1639,8 @@ int main(int argc, char *argv[])
   /* add a button to do something usefull */
   button = gtk_button_new_with_label("Fork me!");
           
-  gtk_signal_connect(GTK_OBJECT (button), "clicked",
-                    GTK_SIGNAL_FUNC(fork_me), NULL);
+  g_signal_connect(G_OBJECT (button), "clicked",
+                    G_CALLBACK(fork_me), NULL);
 
   gtk_container_add(GTK_CONTAINER(window), button);
           
@@ -1663,7 +1665,7 @@ int main(int argc, char *argv[])
 
 <sect1>
 <title>Why don't the contents of a button move when the button
-is pressed? Here's a patch to make it work that way...</title>
+is pressed? Here's a patch to make it work that way... <emphasis>[GTK 2.x]</emphasis></title>
 
 <para>From: Peter Mattis</para>
 
@@ -1689,12 +1691,12 @@ and determined it didn't look good and removed it.</quote></para>
 
 <sect1>
 <title>How do I identifiy a widgets top level window or other
-ancestor?</title>
+ancestor? <emphasis>[GTK 2.x]</emphasis></title>
 
 <para>There are a couple of ways to find the top level parent
-of a widget. The easier way is to call the
+of a widget. The easiest way is to call the
 <literal>gtk_widget_get_toplevel()</literal> function that
-returns pointer to a GtkWidget that is the top level
+returns pointer to a GtkWidget that is the top level
 window.</para>
 
 <para>A more complicated way to do this (but less limited, as
@@ -1718,12 +1720,16 @@ widget (entry, label, etc. To find the master hbox using the
       hbox = gtk_widget_get_ancestor(w, GTK_TYPE_HBOX);
 </programlisting>
 
+<para>You can also follow the a widgets ancestry by using the function
+<literal>gtk_widget_get_parent()</literal> that returns a pointer
+to a widgets parent widget.</para>
+
 </sect1>
 
 <!-- ----------------------------------------------------------------- -->
 
 <sect1>
-<title>How do I get the Window ID of a GtkWindow?</title>
+<title>How do I get the Window ID of a GtkWindow? <emphasis>[GTK 2.x]</emphasis></title>
 
 <para>The actual Gdk/X window will be created when the widget
 gets realized. You can get the Window ID with:</para>
@@ -1738,8 +1744,7 @@ Window xwin = GDK_WINDOW_XWINDOW (GTK_WIDGET (my_window)->window);
 <!-- ----------------------------------------------------------------- -->
 
 <sect1>
-<title>How do I catch a double click event (in a list widget,
-for example)?</title>
+<title>How do I catch a double click event? <emphasis>[GTK 2.x]</emphasis></title>
 
 <para>Tim Janik wrote to gtk-list (slightly modified):</para>
 
@@ -1749,10 +1754,10 @@ for example)?</title>
 gint
 signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_data)
 {
-  if (GTK_IS_LIST_ITEM(widget) &&
+  if (GTK_IS_BUTTON(widget) &&
        (event->type==GDK_2BUTTON_PRESS ||
         event->type==GDK_3BUTTON_PRESS) ) {
-    printf("I feel %s clicked on button %d\n",
+    printf("I feel %s clicked with button %d\n",
            event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
            event->button);
   }
@@ -1764,18 +1769,18 @@ signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_dat
 
 <programlisting role="C">
 {
-  /* list, list item init stuff */     
+  /* button init stuff */     
 
-  gtk_signal_connect(GTK_OBJECT(list_item),
+  g_signal_connect(G_OBJECT(button),
                      "button_press_event",
-                     GTK_SIGNAL_FUNC(signal_handler_event),
+                     G_CALLBACK(signal_handler_event),
                      NULL);
 
   /* and/or */
 
-  gtk_signal_connect(GTK_OBJECT(list_item),
+  g_signal_connect(G_OBJECT(button),
                      "button_release_event",
-                     GTK_SIGNAL_FUNC(signal_handler_event),
+                     G_CALLBACK(signal_handler_event),
                      NULL);
 
   /* something else */